
<!DOCTYPE HTML>

<html>

<head>
	<meta charset="utf-8">
	<title>(web开发的编程习惯）coding conventions in web development - 前端艺术</title>
	<meta name="author" content="Nicholas">

	
	<meta name="description" content="(Web开发的编程习惯）coding Conventions in Web Development 今天我要讨论的是一些编程习惯。每个人编程时间长了都会遇到编写代码风格的统一问题。我觉得每个人都会遇到这样的问题，就是不同的工程可以使用不同的规则和风格来编写，并且有时会很遇到很多麻烦， &hellip;">
	

  <!-- http://t.co/dKP3o1e -->
  <meta name="HandheldFriendly" content="True">
  <meta name="MobileOptimized" content="320">
  <meta name="viewport" content="width=device-width, initial-scale=1">

	<link href="/atom.xml" rel="alternate" title="前端艺术" type="application/atom+xml">
	
	<link rel="canonical" href="http://xiebaochun.github.io/blog/2013/10/15/coding-conventions-in-web-development/">
	<link href="/favicon.png" rel="shortcut icon">
	<link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css">
	<link href="/stylesheets/font-awesome.min.css" media="screen, projection" rel="stylesheet" type="text/css">
	<!--[if lt IE 9]><script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
	<link href='http://fonts.googleapis.com/css?family=Open+Sans:400italic,400,700' rel='stylesheet' type='text/css'>
	<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
	<!--Fonts from Google"s Web font directory at http://google.com/webfonts -->
<link href="http://fonts.googleapis.com/css?family=PT+Serif:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
<link href="http://fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">

</head>


<body>
	<div class="container">
		<div class="left-col">
			<div class="intrude-less">
			<header id="header" class="inner"><div class="profilepic">
<!--the weather pugin-->
    <script defer src="http://julying.com/lab/weather/v3/jquery.weather.build.min.js?parentbox=body&moveArea=all&zIndex=1&move=1&drag=1&autoDrop=1&styleSize=big&style=_random&area=client&city=%E5%8C%97%E4%BA%AC"></script>
	<script src="/javascripts/md5.js"></script>
	<script type="text/javascript">
		$(function(){
			$('.profilepic').append("<img src='https://si0.twimg.com/profile_images/378800000316979686/061b0d73fe1b9cc3a643a68bcb077161.jpeg' alt='Profile Picture' style='width: 160px;' />");
		});
	</script>
</div>
<hgroup>
  <h1><a href="/">前端艺术</a></h1>
  
    <h2>one blog for games.</h2>
  
</hgroup>

<nav id="main-nav"><ul class="main-navigation">
  <li><a href="/">Home</a></li>
  <li><a href="/blog/archives">Archives</a></li>
  <li><a href="http://www.juerry.com/index.html">my lab</a></li>
</ul>


<section class="aboutme">
  <p>
    专注于移动开发
  </p>
</section>
</nav>
<nav id="sub-nav">
	<div class="social">
		
		
		
		<a class="twitter" href="http://twitter.com/xiebaochun" title="Twitter">Twitter</a>
		
		
		<a class="github" href="https://github.com/xiebaochun" title="GitHub">GitHub</a>
		
		
		
		
		
		
		
		
		<a class="rss" href="/atom.xml" title="RSS">RSS</a>
		
	</div>
</nav>
<section>
  <h1>Categories</h1>
    <ul id="category-list"><li><a href='/blog/categories/ios/'>ios (2)</a></li><li><a href='/blog/categories/other/'>other (14)</a></li><li><a href='/blog/categories/web/'>web (23)</a></li></ul>
</section>

</header>				
			</div>
		</div>	
		<div class="mid-col">
			
				
			
			<div class="mid-col-container">
				<div id="content" class="inner"><article class="post" itemscope itemtype="http://schema.org/BlogPosting">
	<h1 class="title" itemprop="name">(Web开发的编程习惯）coding Conventions in Web Development</h1>
	<div class="entry-content" itemprop="articleBody"><p><img src="http://www.script-tutorials.com/demos/362/thumb.png" alt="" /></p>

<p>今天我要讨论的是一些编程习惯。每个人编程时间长了都会遇到编写代码风格的统一问题。我觉得每个人都会遇到这样的问题，就是不同的工程可以使用不同的规则和风格来编写，并且有时会很遇到很多麻烦，以至于你想要一些统一的编写规范。换句话说，编程习惯就是某种特定语言推荐的编程风格，方法和实践。这些习惯一般包括注释，文件结构管理，缩进，声明，空格，命名习惯，编程习惯和原则等。我们建议你遵循这些规则，他将会帮助你提高代码的可读性和易维护性。
<!--more-->
提供的大部分例子是PHP语言，但是很容易运用于其他语言中。</p>

<h3 id="tabulationtab">1.Tabulation(Tab)</h3>

<p>首先，我先提出一个问题：什么情况下使用tab和空格？一般，indentation并不是所有语言必须的，是次要的。开发者最好是将结构转成人们易读的形式。特别的，indentation是让控制流结构比如循环，包含结构更加亲切熟悉。</p>

<p>我从来都没有真正理解Tabs和Spaces的争议。但是无论如何，我可以建议你使用space而不是Tab。以曾经有过这样的争议：当我们使用不同的软件查看代码时，tabs和space看起来不一样。仅仅是缩进两行代码，第一行使用tab,第二行使用4个空格。他将看起来和Nptepad++。但是用备份的版本和这个对比，你讲会注意到tab比4个空格还长（结果，我们得到一个很糟糕的格式化代码）。因此在调整你的工程时请尽量使用空格代替tab.这个习惯将会给你将来带来很大的帮助。</p>

<h3 id="class-names">2.类的名字（class names)</h3>

<p>为了避免类的命名重复，类名必须以一个前缀开头并且每个单词的首字母一大些开始。例如：</p>

<pre><code>class MyClassName{
 function MyClassName(){
   }
}
</code></pre>

<h3 id="variable-names">3.变量名字（variable names)</h3>

<p>因为严格的数据编写在大多数的web语言中的遗失（虽然还可以使用），为了方便，变量名应该以一个有意义小写字母开始：</p>

<p>可以使用的前缀：</p>

<ul>
  <li>i integer</li>
  <li>f float/double</li>
  <li>s string</li>
  <li>a array</li>
  <li>o object</li>
  <li>r resource</li>
  <li>b boolean</li>
  <li>is boolean</li>
</ul>

<p>前缀后面的单词的首字母都以大写字母开头。如果你需要声明一个私有变量，你可以使用下划线。例如(PHP):</p>

<pre><code>public $isFirstName=""some value";
publid $isSeconedName="some value";
private $_iVariable;
$iDigit1=$iDigit2=10;
$oMyClass=new MyClass();
</code></pre>

<h3 id="constant-names">4.常量名字（Constant names)</h3>

<p>常量是静态变量，它意味着它的值是不会改变的。一般情况下，我们使用所有大写字母来命名常量（不要忘记可以使用可能的前缀），例如：</p>

<pre><code>define("PRJ_WEBSITE","HTTP://www.website.com/");
define("PRJ_GLOBAL_CURRENCY","$");
</code></pre>

<h3 id="section">5.函数声明（名字和格式）</h3>

<p>所有的函数的名字都应该以小学字母开始，并且每个单词的首字母都应该使用大写字母。大括号应该和函数名在同一行（在参数之后）。例如：</p>

<pre><code>function getPropertyValue($sName){
//your custom code is here
}
function setPropertyValue($sName,$sValue){
//your custom code is here
}
</code></pre>

<h3 id="special-structures-formatting">6.特殊结构规范（special structures formatting)</h3>

<p>特殊结构，例如if/else,foreeach,while等因遵循以下规则：</p>

<ul>
  <li>结构名和随后的圆括号之间需要一个空格（增加可读性）</li>
  <li>包含在花括号里的条件语言应该使用空格使其分开（增加可读性）</li>
  <li>在左边圆括号之后和右边圆括号之前不应该有空格</li>
  <li>Open curly brace（大括号）在同一行</li>
  <li>内部的条件语句应该使用tab来缩进</li>
</ul>

<p>例如：</p>

<pre><code>foreeach($akey as $iKey=&gt;$sValue){
 //your custom code is here
}

if($bCondition){
   //your custom code is here
}else{
//your custom code is here
}

switch($sKey){
 case 1:
 //your custom code is here
 break;
 case 2:
 //your custom code is here
 break;
 case 3:
 //your custom code is here
 break;
 default:
//your custom code is here
 break;
}
</code></pre>

<h3 id="database-table-names">7.数据库表格名字（Database table names)</h3>

<p>当你创建一个表格时，使用容易理解的前缀，并使用下划线将每个单词分开。使用大写字母不是必须的。表格的关键字同样适用，例如：</p>

<pre><code>CREATE TABLE IF NOT EXISTS 'myprj_records_table'(
   'id' int(11) NOT NULL AUTO_INCREMENT,
   'pid' int(11) NOT NULL,
   'snippet' varchar(128) NOT NULL,
   'description' varchar(255) NOT NULL,
} ENGLISH=MyISAM DEFAULT　CHARSET=utf-8;
</code></pre>

<h3 id="section-1">8.工程文件结构</h3>

<p>当我们在团队工作时保持一个良好的文件结构式很重要的。不要将所有的文件放在一个单独的文件里，这样会很混乱。例如：</p>

<pre><code>/root folder
  /backup
  /cache
  /classes
  /css
  /js
  /media
/images
/mp3
/video

index.php
otherFiles.php
</code></pre>

<hr />

<h3 id="section-2">总结：</h3>

<p>最后，我想说我不能强迫你遵循上面提到的规则，这只是建议。实际上，很多开发团队会使用他们自己的变成习惯，但是无论如何，我们的建议会所有人都很有帮助。我希望你喜欢这篇文章。我会非常感谢你将其分享给你的朋友们。祝你好运并欢迎再次回访！    </p>

<p>原文地址：<a href="http://www.script-tutorials.com/coding-conventions-in-web-development/">http://www.script-tutorials.com/coding-conventions-in-web-development/</a></p>
</div>

</article>

	<div class="share">
	<div class="addthis_toolbox addthis_default_style ">
	
	
	<a class="addthis_button_tweet"></a>
	
	
	
	<!-- JiaThis Button BEGIN -->
<div class="jiathis_style_32x32">
	<a class="jiathis_button_qzone"></a>
	<a class="jiathis_button_tsina"></a>
	<a class="jiathis_button_tqq"></a>
	<a class="jiathis_button_weixin"></a>
	<a class="jiathis_button_renren"></a>
	<a href="http://www.jiathis.com/share?uid=1838235" class="jiathis jiathis_txt jtico jtico_jiathis" target="_blank"></a>
	<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript">
var jiathis_config = {data_track_clickback:'true'};
</script>
<script type="text/javascript" src="http://v3.jiathis.com/code/jia.js?uid=1371541356556113" charset="utf-8"></script>
<!-- JiaThis Button END -->
<!-- UY BEGIN -->
<div id="uyan_frame"></div>
<script type="text/javascript" src="http://v2.uyan.cc/code/uyan.js?uid=1838235"></script>
<!-- UY END -->
	
	<a class="addthis_counter addthis_pill_style"></a>
	</div>
  <script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid="></script>
</div>


</div>
			</div>
			<footer id="footer" class="inner"><p>
  Copyright &copy; 2014 - Nicholas -
  <span class="credit">Powered by <a href="http://octopress.org">Octopress</a></span>
</p>

Design credit: <a href="http://shashankmehta.in/archive/2012/greyshade.html">Shashank Mehta</a></footer>
			







  <script type="text/javascript">
    (function(){
      var twitterWidgets = document.createElement('script');
      twitterWidgets.type = 'text/javascript';
      twitterWidgets.async = true;
      twitterWidgets.src = '//platform.twitter.com/widgets.js';
      document.getElementsByTagName('head')[0].appendChild(twitterWidgets);
    })();
  </script>





		</div>
	</div>
</body>
</html>
